This invention relates to a communication system, a communication terminal, a session relay, and a communication protocol and, in particular, to a communication system, a communication terminal, a session relay, and a communication protocol, each of which is capable of maintaining high throughput even if a packet loss is frequently caused to occur.
TCP (Transmission Control Protocol) is known as a protocol that is most frequently used in a fourth-layer protocol for data communication over the internet. By the use of the TCP, it is possible to realize reliable communication between a transmitting terminal and a receiving terminal without loss of data along a communication path. The TCP provides a congestion control function of appropriately controlling a congestion window depending upon a congestion condition of a network. If no congestion occurs in the network, the congestion window is given a large size to increase a transmission bandwidth. If congestion occurs in the network, the congestion window is given a small size to decrease the transmission bandwidth.
Practically, the TCP has a wide variety of versions. Among others, TCP-Reno is most widely used (see W. Stevens, “TCP Slow Start, Congestion Avoidance, Fast Retransmit, and Fast Recovery Algorithms,” RFC2001, January 1997). In the TCP-Reno, upon detection of packet loss, it is judged that the network is congested. Then, the congestion window is halved or reduced to a half to decrease the transmission bandwidth. On the other hand, if no packet loss is detected, it is judged that the network is not congested. Then, the congestion window is linearly increased.
The TCP-Reno is disadvantageous in that high throughput is not achieved, in particular, in a radio channel if packet loss or discard occurs due to a cause other than the congestion. For example, it is assumed that packet loss occurs due to an error on a radio channel. In this event, even if no congestion actually occurs, the TCP-Reno judges occurrence of congestion and, in consequence, reduces the congestion window. In order to deal with packet loss due to the cause other than the congestion, proposal has been made of the following techniques.
In a first conventional technique, upon occurrence of packet loss, a network supplies each terminal with some information about whether or not the packet loss results from congestion. Japanese Patent Application Publication (JP-A) No. 2004-80413 discloses a method in which a receiving terminal transmits ELN (Explicit Loss Notification) information to a transmitting terminal upon occurrence of packet loss due to an error in a radio channel. The transmitting terminal reduces the congestion window only when the packet loss stems from the congestion. Japanese Patent Application Publication (JP-A) No. H11-243419 discloses a similar method. Japanese Patent Application Publication (JP-A) No. 2000-253096 discloses a method in which the transmitting terminal is informed of a quality of the radio channel and, if the quality of the radio channel is inferior, the congestion window is controlled by a control scheme adapted to the radio channel.
In a second conventional technique, upon occurrence of packet loss, the congestion window is changed irrespective of whether or not the packet loss is due to congestion. In this case, the congestion window is not simply reduced to a half but is given an appropriate value depending upon a situation. In Japanese Patent Application Publication (JP-A) No. 2004-32218 or an article by C. Casetti et al “TCP Westwood: Bandwidth Estimation for Enhanced Transport over Wireless Links” in Proceedings of Mobicom 2001, a method is disclosed wherein a bandwidth available to a TCP session is continuously measured during transmission. Upon occurrence of packet loss, the congestion window is updated to an optimum value with reference to the available bandwidth. In such a method, if the packet loss occurs due to an error in the radio channel, the congestion window is not simply halved but is updated to an optimum value. It is therefore possible to avoid a decrease in throughput due to the packet loss.
However, the above-mentioned first conventional technique has a shortcoming in difficulty of provision because a mechanism is needed to transmit, from the network to each terminal, the cause of the packet loss and the condition of the radio channel. In particular, in case where a terminal connected to the radio channel communicates with an unspecified number of terminals which are not connected to the radio channel, it is not difficult to introduce the above-mentioned mechanism to the terminal connected to the radio channel but it is not easy to introduce the above-mentioned mechanism to all of the terminals which are not connected to the radio channel. In case where packet loss occurs due to an error in an ordinary wired channel, it is not easy to introduce the above-mentioned mechanism to all such wired channels.
The second conventional technique makes it difficult to coexist with both a proposed session and an existing TCP session both of which share the network. Specifically, when the TCP session uses the second conventional technique, the congestion window is updated in a manner different from that of the existing TCP session even if the packet loss results from the congestion. Therefore, if such different TCP sessions coexist with each other in the network and, in particular, if the packet loss is mostly based on the congestion, only the existing TCP session achieves high throughput or, to the contrary, is significantly reduced in throughput.